package com.learn.redis.utils.idempotent;

/**
 * @author PC
 * 幂等性接口
 */
public interface Idempotent {
    /**
     * 创建唯一性lockKey
     *
     * @param args 构建lockKey的参数
     * @return lockKey
     */
    String createUniqueLockKey(String... args);

    /**
     * 校验lockKey是否存在（是否是伪造的）
     *
     * @param lockKey lockKey
     * @return lockKey是否存在
     */
    Boolean lockKeyExist(String lockKey);

    /**
     * 清除校验数据
     * @param lockKey lockKey
     * @return 是否清除成功
     */
    Boolean clear(String lockKey);
}
